﻿using System;

namespace NSDuctTape
{
	internal static class Selectors
	{
		public static readonly IntPtr Init = ObjectiveCMethods.SelectorFromString("init");
		public static readonly IntPtr Class = ObjectiveCMethods.SelectorFromString("class");
		public static readonly IntPtr SignatureWithObjCTypes = ObjectiveCMethods.SelectorFromString("signatureWithObjCTypes:");
		public static readonly IntPtr ValueForUndefinedKey = ObjectiveCMethods.SelectorFromString("valueForUndefinedKey:");
		public static readonly IntPtr SetValueForUndefinedKey = ObjectiveCMethods.SelectorFromString("setValue:forUndefinedKey:");

		public static readonly IntPtr NumberWithBool = ObjectiveCMethods.SelectorFromString("numberWithBool:");
		public static readonly IntPtr NumberWithDouble = ObjectiveCMethods.SelectorFromString("numberWithDouble:");
		public static readonly IntPtr NumberWithFloat = ObjectiveCMethods.SelectorFromString("numberWithFloat:");
		public static readonly IntPtr NumberWithShort = ObjectiveCMethods.SelectorFromString("numberWithShort:");
		public static readonly IntPtr NumberWithInt = ObjectiveCMethods.SelectorFromString("numberWithInt:");
		public static readonly IntPtr NumberWithLong = ObjectiveCMethods.SelectorFromString("numberWithLong:");
		public static readonly IntPtr NumberWithUnsignedChar = ObjectiveCMethods.SelectorFromString("numberWithUnsignedChar:");
		public static readonly IntPtr NumberWithUnsignedShort = ObjectiveCMethods.SelectorFromString("numberWithUnsignedShort:");
		public static readonly IntPtr NumberWithUnsignedInt = ObjectiveCMethods.SelectorFromString("numberWithUnsignedInt:");
		public static readonly IntPtr NumberWithUnsignedLong = ObjectiveCMethods.SelectorFromString("numberWithUnsignedLong:");

		public static readonly IntPtr BoolValue = ObjectiveCMethods.SelectorFromString("boolValue");
		public static readonly IntPtr DoubleValue = ObjectiveCMethods.SelectorFromString("doubleValue");
		public static readonly IntPtr FloatValue = ObjectiveCMethods.SelectorFromString("floatValue");
		public static readonly IntPtr ShortValue = ObjectiveCMethods.SelectorFromString("shortValue");
		public static readonly IntPtr IntValue = ObjectiveCMethods.SelectorFromString("intValue");
		public static readonly IntPtr LongValue = ObjectiveCMethods.SelectorFromString("longValue");
		public static readonly IntPtr UnsignedCharValue = ObjectiveCMethods.SelectorFromString("unsignedCharValue");
		public static readonly IntPtr UnsignedShortValue = ObjectiveCMethods.SelectorFromString("unsignedShortValue");
		public static readonly IntPtr UnsignedIntValue = ObjectiveCMethods.SelectorFromString("unsignedIntValue");
		public static readonly IntPtr UnsignedLongValue = ObjectiveCMethods.SelectorFromString("unsignedLongValue");

		public static readonly IntPtr IsKindOfClass = ObjectiveCMethods.SelectorFromString("isKindOfClass:");

		public static readonly IntPtr Retain = ObjectiveCMethods.SelectorFromString("retain");
		public static readonly IntPtr Release = ObjectiveCMethods.SelectorFromString("release");

		public static readonly IntPtr Selector = ObjectiveCMethods.SelectorFromString("selector");
		public static readonly IntPtr GetArgumentAtIndex = ObjectiveCMethods.SelectorFromString("getArgument:atIndex:");
		public static readonly IntPtr SetReturnValue = ObjectiveCMethods.SelectorFromString("setReturnValue:");

		public static readonly IntPtr InvocationWithMethodSignature = ObjectiveCMethods.SelectorFromString("invocationWithMethodSignature:");
		public static readonly IntPtr MethodSignatureForSelector = ObjectiveCMethods.SelectorFromString("methodSignatureForSelector:");

		public static readonly IntPtr SetSelector = ObjectiveCMethods.SelectorFromString("setSelector:");
		public static readonly IntPtr SetTarget = ObjectiveCMethods.SelectorFromString("setTarget:");
		public static readonly IntPtr MethodSignature = ObjectiveCMethods.SelectorFromString("methodSignature");

		public static readonly IntPtr NumberOfArguments = ObjectiveCMethods.SelectorFromString("numberOfArguments");
		public static readonly IntPtr SetArgumentAtIndex = ObjectiveCMethods.SelectorFromString("setArgument:atIndex:");
		public static readonly IntPtr Invoke = ObjectiveCMethods.SelectorFromString("invoke");
		public static readonly IntPtr MethodReturnLength = ObjectiveCMethods.SelectorFromString("methodReturnLength");
		public static readonly IntPtr GetReturnValue = ObjectiveCMethods.SelectorFromString("getReturnValue:");

		public static readonly IntPtr ColorUsingColorSpace = ObjectiveCMethods.SelectorFromString("colorUsingColorSpace:");
		public static readonly IntPtr GenericRgbColorSpace = ObjectiveCMethods.SelectorFromString("genericRGBColorSpace");
		public static readonly IntPtr GetComponents = ObjectiveCMethods.SelectorFromString("getComponents:");
		public static readonly IntPtr ColorWithCalibratedRedGreenBlueAlpha = ObjectiveCMethods.SelectorFromString("colorWithCalibratedRed:green:blue:alpha:");

		public static readonly IntPtr Length = ObjectiveCMethods.SelectorFromString("length");
		public static readonly IntPtr GetCharacters = ObjectiveCMethods.SelectorFromString("getCharacters:");
		public static readonly IntPtr StringWithCharactersLength = ObjectiveCMethods.SelectorFromString("stringWithCharacters:length:");

		public static readonly IntPtr WillChangeValueForKey = ObjectiveCMethods.SelectorFromString("willChangeValueForKey:");
		public static readonly IntPtr DidChangeValueForKey = ObjectiveCMethods.SelectorFromString("didChangeValueForKey:");

		public static readonly IntPtr Autorelease = ObjectiveCMethods.SelectorFromString("autorelease");
		public static readonly IntPtr RaiseFormat = ObjectiveCMethods.SelectorFromString("raise:format:");
	}
}
